Back


Goal 16: Peace, justice and strong institutions

Personfarlig kriminalitet


FN 16.10.1 Offences against life and body in total
# Import
KRDAN_raw <-
  read_csv(paste0("https://bank.stat.gl:443/sq/004c1708-6db1-4553-a019-41e76ba8a8f6", "?lang=", language),
           locale = locale(encoding = "latin1"))

# Transform
KRDAN <-
  KRDAN_raw %>% 
  rename(
    "offence" = 1,
    "time"    = 2,
    "value"   = 3
  ) %>% 
  mutate(offence = offence %>% str_remove_all("[:digit:]|\\-") %>% trimws(),
         offence = offence %>% fct_reorder(value))

# Plot
KRDAN %>% 
  ggplot(aes(
    x    = time,
    y    = value,
    fill = offence
  )) +
  geom_col() +
  theme_statgl() + 
  scale_fill_statgl(reverse = TRUE, guide = guide_legend(nrow = 3, reverse = TRUE)) +
  theme(plot.margin = margin(10, 10, 10, 10)) +
  labs(
    title = sdg16$figs$fig1$title[language],
    x = " ",
    y = colnames(KRDAN_raw)[3],
    fill = " ",
    caption = sdg16$figs$fig1$cap[language]
  )

StatBank

Method


# Transform
KRDAN <- 
  KRDAN_raw %>% 
  rename(
    "offence" = 1,
    "time"    = 2,
    "value"   = 3
  ) %>% 
  mutate(offence = offence %>% str_remove_all("[:digit:]|\\-") %>% trimws(),
         offence = offence %>% fct_reorder(value)) %>% 
  filter(time >= year(Sys.time()) - 5) %>% 
  #arrange(desc(time)) %>% 
  mutate(time = time %>% factor(levels = unique(time)),
         var = colnames(KRDAN_raw)[3]) %>% 
  spread(2, 3)

# Table
KRDAN %>% 
  select(-2) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = table(KRDAN[[2]]))
2019 2020 2021 2022
Reported offences
Homicide 6 7 3 10
Illegal coercion and deprivation of liberty 6 13 15 12
Attempted homicide 8 8 10 14
Other offences against life and limb 19 20 39 28
Illegal intrusion 42 51 44 53
Threats to life 151 188 163 198
Violence against the individual 805 981 995 880

Sexual assault


FN 16.2.3 Proportion of young women and men between the ages of 18 to 29 who have experienced sexual violence before the age of 18
# Import
SIF_raw <-
  data.frame(overgreb = c(32.8, 32.8, 27.0),
             tid = c("2005-2010", "2014", "2018")) %>%
  as_tibble()

# Transform
SIF <-
  SIF_raw %>%
  rename(`Andel 18-29-årige, der har vøret udsat for seksuelle overgreb inden 18-årsalderen` = overgreb) %>%
  gather(indikatorer, værdi, -tid)

# Plot
SIF_overgreb_plot <-
  SIF %>%
  mutate(tid = as.character(tid)) %>% 
  ggplot(aes(x = tid, y = værdi, fill = indikatorer)) +
  geom_col() +
  scale_y_continuous(labels  = scales::percent_format(scale = 1, accuracy = 1, big.mark = ".",
    decimal.mark = ",")) +
  theme_statgl() + scale_fill_statgl(reverse = TRUE) +
  theme(legend.position = "None") +
  labs(
    title = sdg16$figs$fig2$title[language],
    x = " ",
    y = " ",
    caption = sdg16$figs$fig2$cap[language]
  )

SIF_overgreb_plot

Befolkningsundersøgelse


# Import
SIF_raw <-
  data.frame(overgreb = c(32.8, 32.8, 27.0),
             tid = c("2005-2010", "2014", "2018")) %>%
  as_tibble()

# Transform
SIF <-
  SIF_raw %>%
  rename(`Andel 18-29-årige, der har været udsat for seksuelle overgreb inden 18-årsalderen` = overgreb) %>%
  gather(indikatorer, værdi, -tid)

# Table
SIF_overgreb_table <-
  SIF %>%
  mutate(værdi = format(værdi, digits = 3, decimal.mark = ",")) %>%
  spread(tid, værdi) %>%
  set_names(str_to_title(names(.))) %>%
  kable(align = "lrrrrrrrrrrrrrrrr") %>%
  kable_styling(bootstrap_options = c("condensed", "reactive"),
                full_width = FALSE) %>%
  add_footnote(
    sdg16$figs$fig2$foot[language],
    notation = "symbol"
  )

SIF_overgreb_table
Indikatorer 2005-2010 2014 2018
Andel 18-29-årige, der har været udsat for seksuelle overgreb inden 18-årsalderen 32,8 32,8 27,0
* Proportion of 18-29-year-olds who have been sexually abused before the age of 18.

Homicide


FN 16.1.1 Number of victims of premeditated murder by gender
# Import
SUDLDM3_raw <- 
  read_csv(
    paste0("https://bank.stat.gl:443/sq/50013c7c-14d5-4d6a-96e0-df61cb3044f3", "?lang=", language),
    locale = locale(encoding = "latin1")
  )

# Transform
SUDLDM3 <- 
  SUDLDM3_raw %>% 
  rename(
    "causes" = 1,
    "sex"    = 2,
    "time"   = 3,
    "value"  = 4
  )

# Plot
SUDLDM3 %>% 
  ggplot(aes(
    x    = time,
    y    = value,
    fill = sex
  )) +
  geom_col() +
  theme_statgl() + scale_fill_statgl(reverse = TRUE) +
  scale_y_continuous(breaks = c(0, 2, 4, 6, 8, 10)) +
  labs(
    title = SUDLDM3[[1]][1],
    y = sdg16$figs$fig3$y_lab[language],
    fill = " ",
    x = " ",
    caption = sdg16$figs$fig3$cap[language]
  )

StatBank


# Transform
SUDLDM3 <- 
  SUDLDM3_raw %>% 
  rename(
    "causes" = 1,
    "sex"    = 2,
    "time"   = 3,
    "value"  = 4
  ) %>% 
  spread(2, 4) %>% 
  filter(time >= year(Sys.time()) - 5) %>% 
  arrange(desc(time))

SUDLDM3 %>% 
  select(-1) %>% 
  rename(" " = 1) %>% 
  statgl_table(year_col = " ") %>% 
  pack_rows(index = table(SUDLDM3[[1]])) %>% 
  add_footnote(sdg16$figs$fig3$foot[language], notation = "symbol")
Man Woman
Homicide and assault
2022 5 1
2021 2 1
2020 2 3
2019 3 1
* Number of persons

Police security survey


GS Results from the security survey
# Import
police1_raw <-
  data.frame(
    Tryg = c(82.9, 81.6),
    hverken = c(5.5, 7.3),
    Utryg = c(10.1, 10.4),
    ved_ikke = c(1.5, 0.7),
    tid = c(2018 , 2019)
  ) %>%
  as_tibble()

# Transform
police1 <-
  police1_raw %>%
  rename(`Hverken/eller` = hverken,
         `Ved ikke/ ønsker ikke at svare` = ved_ikke) %>%
  gather(svar, procent, -tid) %>% 
  mutate(tid = as.factor(tid))
  
# Plot
police1_plot <-
  police1 %>%
  ggplot(aes(x = svar,
             y = procent,
             fill = tid)) +
  geom_col(position = "dodge2") +
  expand_limits(y = 100) +
  theme_statgl() + scale_fill_statgl() +
  scale_y_continuous(labels  = scales::percent_format(scale = 1, accuracy = 1, big.mark = ".",
    decimal.mark = ",")) +
  labs(
    title = sdg16$figs$fig4$title[language],
    x = " ",
    y = " ",
    fill = " ",
    caption = sdg16$figs$fig4$cap[language]
  )

police1_plot

Security survey


# Import
police1_raw <-
  data.frame(
    Tryg = c(82.9, 81.6),
    hverken = c(5.5, 7.3),
    Utryg = c(10.1, 10.4),
    ved_ikke = c(1.5, 0.7),
    tid = c(2018 , 2019)
  ) %>%
  as_tibble()

# Transform
police1 <-
  police1_raw %>%
  rename(`Hverken/eller` = hverken,
         `Ved ikke/ ønsker ikke at svare` = ved_ikke) %>%
  gather(svar, procent,-tid)

# Table
police1_table <-
  police1 %>%
  mutate(procent = format(procent, digits = 3, decimal.mark = ",")) %>%
  spread(tid, procent) %>%
  set_names(str_to_title(names(.))) %>%
  kable(align = "lrr") %>%
  kable_styling(bootstrap_options = c("condensed", "reactive"),
                full_width = TRUE) %>%
  add_footnote(sdg16$figs$fig4$foot[language],
               notation = "symbol")

police1_table
Svar 2018 2019
Hverken/eller 5,5 7,3
Tryg 82,9 81,6
Utryg 10,1 10,4
Ved ikke/ ønsker ikke at svare 1,5 0,7
* Percentage, Citizens’ experienced security in Greenland


Question: On a scale of 1-7, where 1 is ‘I basically feel safe in my neighborhood’ and 7 is ‘I basically feel insecure in my neighborhood’, how safe or insecure do you feel? Neighborhood is defined as the area immediately surrounding your residence. In the figure, the answers are grouped so that 1-3 indicate that citizens are safe in their neighborhood, 4 indicate that citizens are neither safe nor insecure, and 5-7 indicate that citizens are insecure in their neighborhoods.

Note: Taking into account the statistical uncertainty, the proportion of citizens who are safe in their neighborhoods is at the same level.



# Import
police4_raw <-
  data.frame(
    Tryg = c(92.0, 86.8),
    hverken = c(1.5, 4.7),
    Utryg = c(4.4, 7.2),
    ved_ikke = c(2.2, 1.4),
    tid = c(2018 , 2019)
  ) %>%
  as_tibble()

# Transform
police4 <-
  police4_raw %>%
  rename(`Hverken/eller` = hverken,
         `Ved ikke/ ønsker ikke at svare` = ved_ikke) %>%
  gather(svar, procent,-tid) %>% 
  mutate(tid = as.factor(tid))

# Plot
police4_plot <-
  police4 %>%
  ggplot(aes(x = svar,
             y = procent,
             fill = tid)) +
  geom_col(position = "dodge2") +
  theme_statgl() + scale_fill_statgl() +
  expand_limits(y = 100) +
  scale_y_continuous(labels  = scales::percent_format(scale = 1, accuracy = 1, big.mark = ".",
    decimal.mark = ",")) +
  labs(
    title = sdg16$figs$fig5$title[language],
    x = " ",
    y = " ",
    fill = " ",
    caption = sdg16$figs$fig5$cap[language]
  )

police4_plot

Security survey


# Import
police4_raw <-
  data.frame(
    Tryg = c(92.0, 86.8),
    hverken = c(1.5, 4.7),
    Utryg = c(4.4, 7.2),
    ved_ikke = c(2.2, 1.4),
    tid = c(2018 , 2019)
  ) %>%
  as_tibble()

# Transform
police4 <-
  police4_raw %>%
  rename(`Hverken/eller` = hverken,
         `Ved ikke/ ønsker ikke at svare` = ved_ikke) %>%
  gather(svar, procent,-tid)

# Table
police4_table <-
  police4 %>%
  mutate(procent = format(procent, digits = 3, decimal.mark = ",")) %>%
  spread(tid, procent) %>%
  set_names(str_to_title(names(.))) %>%
  kable(align = "lrr") %>%
  kable_styling(bootstrap_options = c("condensed", "reactive"),
                full_width = TRUE) %>%
  add_footnote(
    sdg16$figs$fig5$foot[language],
    notation = "symbol"
  )

police4_table
Svar 2018 2019
Hverken/eller 1,5 4,7
Tryg 92,0 86,8
Utryg 4,4 7,2
Ved ikke/ ønsker ikke at svare 2,2 1,4
* Percentage, citizens’ experienced security in residential areas without a police station, 2018 - 2019


Question: On a scale of 1-7, where 1 is ‘I basically feel safe in my neighborhood’ and 7 is ‘I basically feel insecure in my neighborhood’, how safe or insecure do you feel? Neighborhood is defined as the area immediately surrounding your residence. In the figure, the answers are grouped so that 1-3 indicate that citizents are safe in their neighborhood, 4 indicate that citizens are neither safe nor insecure, and 5-7 indicate that citizents are insecure in their neighborhoods.

Note: Taking into account the statistical uncertainty, the proportion of citizens who are safe in their neighborhoods has decreased.



# Import
police5_raw <-
  data.frame(
    tillid = c(85.0, 89.3),
    ikke_tillid = c(12.5, 7.7),
    ved_ikke = c(2.5, 3.0),
    tid = c(2018 , 2019)
  ) %>%
  as_tibble()

# Transform
police5 <-
  police5_raw %>%
  rename(
    `Tillid til politiet` = tillid,
    `Ikke tillid til politiet` = ikke_tillid,
    `Ved ikke/ ønsker ikke at svare` = ved_ikke
  ) %>%
  gather(svar, procent,-tid) %>% 
  mutate(tid = as.factor(tid))

# Plot
police5_plot <-
  police5 %>%
  ggplot(aes(x = svar,
             y = procent,
             fill = tid)) +
  geom_col(position = "dodge2") +
  theme_statgl() + scale_fill_statgl() +
  expand_limits(y = 100) +
  scale_y_continuous(labels  = scales::percent_format(scale = 1, accuracy = 1, big.mark = ".",
    decimal.mark = ",")) +
  labs(
    title = sdg16$figs$fig6$title[language],
    x = " ",
    y = " ",
    fill = " ",
    caption = sdg16$figs$fig6$cap[language]
  )

police5_plot

Security survey


# Import
police5_raw <-
  data.frame(
    tillid = c(85.0, 89.3),
    ikke_tillid = c(12.5, 7.7),
    ved_ikke = c(2.5, 3.0),
    tid = c(2018 , 2019)
  ) %>%
  as_tibble()

# Transform
police5 <-
  police5_raw %>%
  rename(
    `Tillid til politiet` = tillid,
    `Ikke tillid til politiet` = ikke_tillid,
    `Ved ikke/ ønsker ikke at svare` = ved_ikke
  ) %>%
  gather(svar, procent, -tid)

# Table
police5_table <-
  police5 %>%
  mutate(procent = format(procent, digits = 3, decimal.mark = ",")) %>%
  spread(tid, procent) %>%
  set_names(str_to_title(names(.))) %>%
  kable(align = "lrr") %>%
  kable_styling(bootstrap_options = c("condensed", "reactive"),
                full_width = TRUE) %>%
  add_footnote(sdg16$figs$fig6$foot[language],
               notation = "symbol")

police5_table
Svar 2018 2019
Ikke tillid til politiet 12,5 7,7
Tillid til politiet 85,0 89,3
Ved ikke/ ønsker ikke at svare 2,5 3,0
* Percentage, Citizens’ trust in the police in Greenland.


Question: Do you agree on the following statement? I trust the police to help me if i need it. In the diagram, answers have been categorized, making ‘Trust the Police’ equal to the number of citizens who answered affirmatively, and ‘Do not trust the Police’ equal to the number of citizens who dissent with the statement.

Note: Taking into account the statistical uncertainty, the proportion of citizens who trust the police has risen. Note however, when comparing, that the question has been asked in different contexts in the two survey years.

Poll


GS Poll
# Import
SAXLANST_raw <- 
  statgl_url("SAXLANST", lang = language) %>%
  statgl_fetch(
    "constituencies" = c(0),
    "votes cast"     = c(16, 20),
    .col_code        = TRUE
  ) %>% 
  as_tibble()

# Transform
SAXLANST <- 
  SAXLANST_raw %>% 
  separate(time, c("day", "month", "year")) %>% 
  select(-c("day", "month")) %>% 
  mutate(
    year = year %>% as.numeric(),
    year = year + 1900,
    plus = case_when(
      year < 1950 ~ 100, 
      year > 1950 ~ 0),
    year = year + plus,
    `votes cast` = `votes cast` %>% fct_reorder(value, sum)
  ) %>% 
  select(-ncol(.)) %>% 
  spread(3, 4) %>% 
  rename(
    valid = 3,
    total = 4
  ) %>% 
  mutate(
    vote = valid / total * 100,
    mean = mean(vote)
  )

# Plot
SAXLANST %>% 
  ggplot(aes(
    x = year,
    y = vote
  )) +
  geom_point(size = 2) +
  geom_segment(aes(
    x = year,
    xend = year,
    y = 0,
    yend = vote
  )) +
  scale_y_continuous(labels  = scales::percent_format(
    scale        = 1,
    accuracy     = 1,
    big.mark     = ".",
    decimal.mark = ","
  )) +
  theme_statgl() + 
  scale_fill_statgl() +
  expand_limits(y = 0) +
  expand_limits(y = 100) +
  geom_hline(
    size = 15,
    alpha = 0.1, 
    color = "green",
    yintercept = SAXLANST[["mean"]][1]
    ) +
  labs(
    title    = sdg16$figs$fig9$title[language],
    subtitle = SAXLANST[[2]][1],
    y        = " ",
    x        = " ",
    caption  = sdg16$figs$fig9$cap[language]
    )

StatBank


# Table
SAXLANST %>% 
  select(year, vote) %>% 
  #arrange(desc(year)) %>% 
  filter(year >= year(Sys.time()) - 20) %>% 
  mutate(
    year = year %>% factor(levels = unique(year)),
    vote = vote %>% round(1)
  ) %>% 
  spread(year, vote) %>% 
  statgl_table() %>% 
  add_footnote(sdg16$figs$fig9$foot[language], notation = "symbol")
2005 2009 2013 2014 2018 2021
74,2 72,6 73,3 72,2 71,1 64,4
* Turnout, Landsting
# Import
SAXKOMST_raw <- 
  statgl_url("SAXKOMST", lang = language) %>% 
  statgl_fetch(
    municipality = c(0),
    "votes cast" = c(15, 19),
    .col_code    = TRUE
  ) %>% 
  as_tibble()

# Transform
SAXKOMST <- 
  SAXKOMST_raw %>% 
  separate(time, c("day", "month", "year")) %>% 
  select(-c("day", "month")) %>% 
  mutate(
    year = year %>% as.numeric(),
    year = year + 1900,
    plus = case_when(
      year < 1950 ~ 100, 
      year > 1950 ~ 0),
    year = year + plus,
    `votes cast` = `votes cast` %>% fct_reorder(value, sum)
    ) %>% 
  select(-ncol(.)) %>% 
  spread(3, 4) %>% 
  rename(
    valid = 3,
    total = 4
  ) %>% 
  mutate(
    vote = valid / total * 100,
    mean = mean(vote)
    )

# Plot
SAXKOMST %>% 
  ggplot(aes(
    x = year,
    y = vote
  )) +
  geom_point(size = 2) +
  geom_segment(aes(
    x = year,
    xend = year,
    y = 0,
    yend = vote
  )) +
  scale_y_continuous(labels  = scales::percent_format(
    scale        = 1,
    accuracy     = 1,
    big.mark     = ".",
    decimal.mark = ","
  )) +
  theme_statgl() + 
  scale_fill_statgl() +
  expand_limits(y = 0) +
  expand_limits(y = 100) +
  geom_hline(
    size       = 15,
    alpha      = 0.1, 
    color      = "red",
    yintercept = SAXKOMST[["mean"]][1],
    ) +
  labs(
    title    = sdg16$figs$fig8$title[language],
    subtitle = SAXKOMST[[2]][1],
    y        = " ",
    x        = " ",
    caption  = sdg16$figs$fig8$cap[language]
    )

StatBank


# Table
SAXKOMST %>% 
  select(year, vote) %>% 
  #arrange(desc(year)) %>% 
  filter(year >= year(Sys.time()) - 20) %>% 
  mutate(
    year = year %>% factor(levels = unique(year)),
    vote = vote %>% round(1)
  ) %>% 
  spread(year, vote) %>% 
  statgl_table() %>% 
  add_footnote(sdg16$figs$fig8$foot[language], notation = "symbol")
2005 2008 2013 2017 2021
66,4 61,2 57,6 60,1 62,6
* Turnout, municipality councils
# Import
SAXFOLK_raw <- 
  statgl_url("SAXFOLK", lang = language) %>% 
  statgl_fetch(
    municipality = c(0),
    "votes cast" = c(12, 16),
    .col_code    = TRUE
    ) %>% 
    as_tibble()

# Transform
SAXFOLK <- 
  SAXFOLK_raw %>% 
  separate(time, c("day", "month", "year")) %>% 
  select(-c("day", "month")) %>% 
  mutate(
    year = year %>% as.numeric(),
    year = year + 1900,
    plus = case_when(
      year < 1980 ~ 100, 
      year > 1980 ~ 0
      ),
    year = year + plus,
    `votes cast` = `votes cast` %>% fct_reorder(value, sum)) %>% 
  select(-ncol(.)) %>% 
  spread(3, 4) %>% 
  rename(
    valid = 3,
    total = 4
  ) %>% 
  mutate(vote = valid / total * 100,
         mean = mean(vote))

# Plot
SAXFOLK %>% 
  ggplot(aes(
    x = year,
    y = vote
  )) +
  geom_point(size = 2) +
  geom_segment(aes(
    x = year,
    xend = year,
    y = 0,
    yend = vote
  )) +
  scale_y_continuous(labels  = scales::percent_format(
    scale        = 1,
    accuracy     = 1,
    big.mark     = ".",
    decimal.mark = ","
  )) +
  theme_statgl() + 
  scale_fill_statgl() +
  expand_limits(y = 0) +
  expand_limits(y = 100) +
  geom_hline(
    size = 15,
    alpha = 0.1,
    color = "blue",
    yintercept = SAXFOLK[["mean"]][1]
    ) +
  labs(
    title    = sdg16$figs$fig7$title[language],
    subtitle = SAXFOLK[[2]][1],
    y        = " ",
    x        = " ",
    caption  = sdg16$figs$fig7$cap[language]
    )

StatBank


# Table
SAXFOLK %>% 
  select(year, vote) %>% 
  #arrange(desc(year)) %>% 
  filter(year >= year(Sys.time()) - 20) %>% 
  mutate(
    year = year %>% factor(levels = unique(year)),
    vote = vote %>% round(1)
    ) %>% 
  spread(year, vote) %>% 
  statgl_table() %>% 
  add_footnote(sdg16$figs$fig7$foot[language], notation = "symbol")
2005 2007 2011 2015 2019 2022
58,6 63,2 55 49,2 48,4 46,6
* Turnout, Folketing